// pages/detail/detail.js
Page({
  data: {
    loading: true, // 加载状态
    detailData: {}, // 详情数据
    isOwner: false, // 是否是发布者本人
    id: '', // 信息ID
    isPhoneNumber: false // 是否为手机号
  },

  onLoad: function (options) {
    if (options.id) {
      this.setData({
        id: options.id
      });
      this.loadDetail();
    } else {
      wx.showToast({
        title: '参数错误',
        icon: 'error'
      });
      wx.navigateBack();
    }
  },

  // 加载详情数据
  loadDetail: function () {
    const db = wx.cloud.database();

    db.collection('carpool').doc(this.data.id).get()
      .then(res => {
        const data = res.data;
        if (data) {
          // 格式化时间
          data.createTime = this.formatTime(new Date(data.createTime));

          // 检查是否是本人发布的信息
          const openid = wx.getStorageSync('openid');
          const isOwner = data._openid === openid;

          // 检查联系方式是否为手机号
          const isPhoneNumber = data.contact && /^\d{11}$/.test(data.contact);

          this.setData({
            detailData: data,
            isOwner: isOwner,
            isPhoneNumber: isPhoneNumber,
            loading: false
          });
        } else {
          this.setData({
            loading: false
          });
        }
      })
      .catch(err => {
        console.error('加载详情失败', err);
        this.setData({
          loading: false
        });
        wx.showToast({
          title: '加载失败',
          icon: 'error'
        });
      });
  },

  // 编辑信息
  editInfo: function () {
    wx.navigateTo({
      url: `/pages/edit/edit?id=${this.data.id}`
    });
  },

  // 切换信息状态（发布/下架）
  toggleStatus: function () {
    const newStatus = this.data.detailData.status === 'active' ? 'inactive' : 'active';
    const actionText = newStatus === 'active' ? '重新发布' : '下架';

    wx.showModal({
      title: `确认${actionText}`,
      content: `确定要${actionText}这条信息吗？`,
      success: (res) => {
        if (res.confirm) {
          this.updateStatus(newStatus);
        }
      }
    });
  },

  // 更新状态
  updateStatus: function (status) {
    wx.showLoading({
      title: '处理中...'
    });

    const db = wx.cloud.database();
    db.collection('carpool').doc(this.data.id).update({
      data: {
        status: status,
        updateTime: new Date()
      }
    }).then(res => {
      wx.hideLoading();
      wx.showToast({
        title: status === 'active' ? '已重新发布' : '已下架',
        icon: 'success'
      });

      // 更新本地数据
      this.setData({
        'detailData.status': status
      });
    }).catch(err => {
      console.error('更新状态失败', err);
      wx.hideLoading();
      wx.showToast({
        title: '操作失败',
        icon: 'error'
      });
    });
  },

  // 拨打电话
  makePhoneCall: function (e) {
    const phone = e.currentTarget.dataset.phone;
    wx.makePhoneCall({
      phoneNumber: phone,
      fail: () => {
        wx.showToast({
          title: '拨打失败',
          icon: 'error'
        });
      }
    });
  },

  // 返回首页
  goBack: function () {
    wx.switchTab({
      url: '/pages/index/index'
    });
  },

  // 格式化时间
  formatTime: function (date) {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hour = date.getHours().toString().padStart(2, '0');
    const minute = date.getMinutes().toString().padStart(2, '0');

    return `${year}-${month}-${day} ${hour}:${minute}`;
  }
});
